Spusteni Excel

Otázka od: Pavel Poles

25. 11. 2002 13:49

Zdravim,

ExcelApp:=CreateOLEObject('Excel.Application');
ExcelApp.Visible:= true;

Vse funguje jak ma (spusteni excelu a jeho zobrazeni), ale jen tehdy mamli
promenou ExcelApp jako globalni.
Jakmile ji dam jak lokalni (napr jen v ButtonClick), tak se mi vse provede,
ale hned se Excel opet vypne. S wordem se to nedeje a pouziju-li
GetActiveOLEObject('Excel.Application') na ziskani jiz zpusteneho okna
Excelu, tak je vse take OK.

Nesetkal jste se s tim nekdo?

Pavel Poles

Odpovedá: Malecek Ondrej

25. 11. 2002 16:06

Nemuze to byt tim, ze ti prestane existovat lokalni promenna, ktera drzi
instanci excelu => reference counting ti snizi pocet referenci na instanci
=> pokud mas jen jeden odkaz na ten excel, dojde i ke zruseni instance
Excelu. Reseni: pouzit _AddRef, pripadne (pouzivat opatrne) pretypovat
promennou, ktera ti drzi instanci Excelu na pointer a priradit do ni nil.
Delphi pak si pak mysli, ze je "prazdna" a nevolaji na ni _Release pri jejim
ruseni.

O  

> -----Původní zpráva-----
> Vse funguje jak ma (spusteni excelu a jeho zobrazeni), ale jen tehdy mamli
> promenou ExcelApp jako globalni.
> Jakmile ji dam jak lokalni (napr jen v ButtonClick), tak se mi
> vse provede,
> ale hned se Excel opet vypne.

Odpovedá: Pavel Poles

25. 11. 2002 15:55

Nejspis to je tim, ze neexistuje lokalni promena, jen me zarazi, ze pro
Outlook a Word to timto zpusobem funguje normalne, ale pro Excel ne....

Pavel Poles
----- Original Message -----
From: "Malecek Ondrej" <ondrej.malecek@radom-cz.cz>
To: <delphi-l@clexpert.cz>
Sent: Monday, November 25, 2002 3:33 PM
Subject: RE: Spusteni Excel


> Nemuze to byt tim, ze ti prestane existovat lokalni promenna, ktera drzi
> instanci excelu => reference counting ti snizi pocet referenci na instanci
> => pokud mas jen jeden odkaz na ten excel, dojde i ke zruseni instance
> Excelu. Reseni: pouzit _AddRef, pripadne (pouzivat opatrne) pretypovat
> promennou, ktera ti drzi instanci Excelu na pointer a priradit do ni nil.
> Delphi pak si pak mysli, ze je "prazdna" a nevolaji na ni _Release pri
jejim
> ruseni.
>
> O  
>
> > -----Původní zpráva-----
> > Vse funguje jak ma (spusteni excelu a jeho zobrazeni), ale jen tehdy
mamli
> > promenou ExcelApp jako globalni.
> > Jakmile ji dam jak lokalni (napr jen v ButtonClick), tak se mi
> > vse provede,
> > ale hned se Excel opet vypne.
>
>